// src/utils/school-teacher/request.js
import axios from "axios";
import { ElMessage } from 'element-plus'
import { useLoginStore } from '../../stores/index.js' // 引入登录状态管理

const service = axios.create({
  baseURL: '/userForum',
  timeout: 5000,
})

// 补充请求拦截器，添加认证信息
service.interceptors.request.use(
  (config) => {
    // 从 Pinia 或 localStorage 中获取 token
    const loginStore = useLoginStore();
    const token = loginStore.token || localStorage.getItem('token');

    // 如果存在 token，添加到 Authorization 头
    if (token) {
      config.headers.Authorization = `Bearer ${token}`; // 注意格式：Bearer + 空格 + token
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
)

// 补充响应拦截器（可选，处理认证失败的情况）
service.interceptors.response.use(
  (response) => {
    return response.data; // 根据后端返回格式调整
  },
  (error) => {
    // 若后端返回 401（未认证），可能是 token 过期或无效
    if (error.response?.status === 401) {
      ElMessage.error('登录已过期，请重新登录');
      // 跳转到登录页
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
)

export default service